package br.com.sisgerenciamento.dto.produtoquantidade;

import java.io.Serializable;

import br.com.sisgerenciamento.dto.produto.ProdutoDTO;
import br.com.sisgerenciamento.exceptions.ApplicationException;
import br.com.sisgerenciamento.model.produtoquantidade.ProdutoQuantidadeVO;
import br.com.sisgerenciamento.utilidades.TreatNumber;
import br.com.sisgerenciamento.utilidades.Validator;

public class ProdutoQuantidadeDTO implements Serializable {

	private static final long serialVersionUID = -4319851441177011627L;
	private String codigo;
	private ProdutoDTO produto = new ProdutoDTO();
	private String quantidade;
	private String valor;
	private String desconto;
	private String acrescimo;
	private String subTotal;
	private String total;
	private String promocao;
	private String adicionais;
	
	private String tipoCliente;
	
	public void validar() throws ApplicationException {
		Validator validator =  Validator.novo();
		
		validator.obrigatorio(getProduto().getCodigo(), getQuantidade(), getValor(), getTotal());
	}
	
	public ProdutoQuantidadeVO getVO(){
		
		ProdutoQuantidadeVO vo = new ProdutoQuantidadeVO();
		
		Validator validator = Validator.novo();
		vo.setCodigo(!validator.isNullOrZero(getCodigo()) ? Long.parseLong(getCodigo()): null);
		vo.setAdicionais(getAdicionais());
		vo.setPromocao(getPromocao() != null ? new Boolean(getPromocao()) : false);
		try {
			vo.setProduto(getProduto().getVO());
		} catch (Exception e) {
		}
		try{
			vo.setValor(TreatNumber.convertBigDecimal(getValor()));
		}catch (Exception e) {
			vo.setValor(null);
		}
		try{
			vo.setDesconto(TreatNumber.convertBigDecimal(getDesconto()));
		}catch (Exception e) {
			vo.setDesconto(null);
		}
		try{
			vo.setAcrescimo(TreatNumber.convertBigDecimal(getAcrescimo()));
		}catch (Exception e) {
			vo.setAcrescimo(null);
		}
		try{
			vo.setSubTotal(TreatNumber.convertBigDecimal(getSubTotal()));
		}catch (Exception e) {
			vo.setSubTotal(null);
		}
		try{
			vo.setTotal(TreatNumber.convertBigDecimal(getTotal()));
		}catch (Exception e) {
			vo.setTotal(null);
		}
		try{
			vo.setQuantidade(new Double(getQuantidade().replace(".", "").replace(",", ".")));
		}catch (Exception e) {
			vo.setTotal(null);
		}
		
		
		return vo;
		
		
	}
	
	public String getCodigo() {
		return codigo;
	}
	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}
	public ProdutoDTO getProduto() {
		return produto;
	}
	public void setProduto(ProdutoDTO produto) {
		this.produto = produto;
	}
	public String getQuantidade() {
		return quantidade;
	}
	public void setQuantidade(String quantidade) {
		this.quantidade = quantidade;
	}
	public String getValor() {
		return valor;
	}
	public void setValor(String valor) {
		this.valor = valor;
	}
	public String getDesconto() {
		return desconto;
	}
	public void setDesconto(String desconto) {
		this.desconto = desconto;
	}
	public String getAcrescimo() {
		return acrescimo;
	}
	public void setAcrescimo(String acrescimo) {
		this.acrescimo = acrescimo;
	}
	public String getSubTotal() {
		return subTotal;
	}
	public void setSubTotal(String subTotal) {
		this.subTotal = subTotal;
	}
	public String getTotal() {
		return total;
	}
	public void setTotal(String total) {
		this.total = total;
	}
	public String getAdicionais() {
		return adicionais;
	}
	public void setAdicionais(String adicionais) {
		this.adicionais = adicionais;
	}
	public String getPromocao() {
		return promocao;
	}
	public void setPromocao(String promocao) {
		this.promocao = promocao;
	}

	public String getTipoCliente() {
		return tipoCliente;
	}

	public void setTipoCliente(String tipoCliente) {
		this.tipoCliente = tipoCliente;
	}
	
	
	
	
}
